Phase unwrapping with multiple wavelengths on a flat torus

ABSTRACT

Example imaging systems are disclosed. One example includes a signal source and a signal receiver configured to receive a reflected electromagnetic signal from an imaged object. The imaging system further includes a processor configured to, for each of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. The processor may compute an estimated distance to the imaged object at least in part by mapping the plurality of phase values to a 2N-dimensional vector, and computing a plurality of zeroes of a trigonometric polynomial. For each of the plurality of zeroes, computing the estimated distance may further include computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at that zero, and selecting and outputting a shortest geodesic distance multiplied by a least common multiple of the wavelengths.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application Ser. No. 63/025,885, filed May 15, 2020, the entirety of which is hereby incorporated herein by reference for all purposes.

BACKGROUND

The estimation of distance is a problem encountered in many applications such as Synthetic Aperture Radar (SAR) Imaging, Optical Interferometry, Radio Interferometric Positioning System (RIPS), and Time-of-Flight Imaging, among others. Each of these techniques uses a signal source, which emits one or multiple signals of different wavelengths, and a receiver. After hitting a target in the environment, the energy carried by these signals is scattered back toward the receiver.

SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.

According to one aspect of the present disclosure, an imaging system is provided, including a signal source configured to emit an electromagnetic signal. The imaging system may further include a signal receiver configured to receive a reflected electromagnetic signal from an imaged object in a physical environment. The imaging system may further include a processor configured to, for each of a plurality of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. The processor may be further configured to, from the plurality of phase values, compute an estimated distance between the imaged object and the receiver. Computing the estimated distance may include mapping the plurality of phase values to a 2N-dimensional vector. Computing the estimated distance may further include computing a plurality of zeroes of a trigonometric polynomial. The trigonometric polynomial may be an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus. For each of the plurality of zeroes, computing the estimated distance may further include computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at that zero. Computing the estimated distance may further include selecting and outputting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by a least common multiple of the wavelengths.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example imaging system, according to one example of the present disclosure.

FIG. 2 shows a plot of an example lattice, according to the example of FIG. 1.

FIGS. 3A-3B shows an IP1 sphere decoder algorithm, according to the example of FIG. 1.

FIG. 4 shows a projection of a six-dimensional flat torus onto a three-dimensional torus, according to the example of FIG. 1.

FIG. 5 shows an example plot of mean squared error as a function of signal-to-noise ratio for a conventional decoder and a torus decoder, according to the example of FIG. 1.

FIGS. 6A and 6B show a flowchart of an example method that may be used with an imaging system, according to the example of FIG. 1.

FIG. 7 schematically shows a non-limiting example of a computing system, according to the example of FIG. 1.

DETAILED DESCRIPTION

As discussed above, when an optical, radio, or other electromagnetic signal is emitted by a signal source included in an imaging system, the signal may scatter off objects in the environment and impinge upon a receiver included in the imaging system. The waveform of the received signal may then be decoded and the delay between the phase of the transmitted and the received signals may be estimated. Based on the wavelength of the signal and the phase delay of the received signal, the distance to the imaged object may be estimated. However, when the distance to the imaged object is greater than the wavelength, phase wrapping occurs, in which multiple estimated distance values separated by multiples of the wavelength result in the received signal having the same phase delay.

In order to allow the correct distance to the imaged object to be identified, multiple components with different wavelengths may be included in the electromagnetic signal. The receiver may receive these components with different phase delays after the components are scattered by the imaged object. A phase unwrapping algorithm may then be used to estimate the distance to the imaged object based on the phase delays of the components of the reflected signal.

The measurements of the phase delays for the components of the reflected signal each include noise due to measurement error. Existing methods of phase unwrapping may require low levels of noise in order to return accurate estimates of the distance to the imaged object. Accordingly, imaging systems that employ existing methods of phase unwrapping may have to use signals with higher power than would be desirable in order to achieve signal-to-noise ratios high enough to achieve low levels of error.

In order to address the above problem, the systems and methods discussed below are provided. FIG. 1 shows an example imaging system 10, according to one example. The imaging system 10 may include a signal source 12 configured to emit an electromagnetic signal 20. The electromagnetic signal 20 may be a radio signal, an infrared signal, a visible light signal, or an ultraviolet signal. The electromagnetic signal 20 may include a plurality of emitted components. In the example of FIG. 1, the electromagnetic signal 20 includes a first emitted component 20A, a second emitted component 20B, and a third emitted component 20C, each of which has a different respective wavelength. Although the example of FIG. 1 shows three components, some other number of components may be used. For example, the number of emitted components may be between three and nine. In some examples, the emitted components of the electromagnetic signal 20 may be emitted during separate periods of time. Alternatively, the signal source 12 may be configured to emit two or more of the emitted components concurrently.

The electromagnetic signal 20 may reflect off an imaged object 22 in a physical environment 24 and return to the imaging system 10. The imaging system 10 may further include a signal receiver 14 configured to receive a reflected electromagnetic signal 26 from the imaged object 22. The imaged object 22 may be a distance 28 from the signal receiver 14. The reflected electromagnetic signal 26 may include a reflected component for each emitted component of the electromagnetic signal 20. The example of FIG. 1 shows the reflected electromagnetic signal 26 as having a first reflected component 26A, a second reflected component 26B, and a third reflected component 26C corresponding to the first emitted component 20A, the second emitted component 20B, and the third emitted component 20C of the electromagnetic signal 20 output by the signal source 12. In some examples, the signal receiver 14 may include a plurality of pixels 15.

The imaging system 10 may further include a processor 16 and memory 18. Although the processor 16 and the memory 18 are shown in FIG. 1 as being located in the same physical device as the signal source 12 and the signal receiver 14, the processor 16 and the memory 18 may alternatively be provided in a separate physical device configured to communicate with the signal source 12 and the signal receiver 14. Additionally or alternatively, some or all of the processes executed by the processor 16 and the memory 18 may be distributed across a plurality of communicatively coupled computing devices.

The processor 16 may be configured to perform phase unwrapping and estimate the distance 28 between the imaged object 22 and the signal receiver 14 according to the following approach. When the processor 16 performs phase unwrapping, the processor 16 may be configured to, for each of the plurality of wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal 26 having that wavelength. The phase values may, for example, be determined based on the amplitudes of the reflected components. The processor 16 may be further configured to execute a torus decoder 30, which may receive wavelength data for the electromagnetic signal 20 and phase data for the reflected electromagnetic signal 26 as inputs and may output a range estimate of the distance 28. In examples in which the signal receiver 14 includes a plurality of pixels 15, the processor 16 may be configured to compute the estimated distance 28 for each pixel 15 of the plurality of pixels 15 included in the signal receiver 14.

A plurality of N phase measurements {tilde over (Y)}_(n) for n=1, . . . , N may be expressed by the following equation:

${\overset{˜}{Y}}_{n} = \left\langle {\frac{r_{0}}{\lambda_{n}} + \overset{\sim}{\Phi}} \right\rangle$

where r₀ is the unknown target distance, λ_(n)∈

is the wavelength of the signal, {tilde over (Φ)} is additive random measurement noise, and

x

=x−└x+½┘, where └x┘ is the floor operator. A quantity affected by random noise is denoted by {tilde over (x)}.

The following least-squares cost function may be used:

${L{S(r)}} = {\sum\limits_{n = 1}^{N}\left\langle {{\overset{˜}{Y}}_{n} - \frac{r}{\lambda_{n}}} \right\rangle^{2}}$

In addition, the following least-squares estimator may be used:

${\overset{\hat{}}{r}}_{0} = {\arg{\min\limits_{r}{L{S(r)}}}}$

Thus, {circumflex over (r)}₀ is the estimate of the target distance r₀ that has the lowest error as computed with the least-squares cost function shown above.

The notation for the unknown target distance r₀ may be changed to r₀=Pβ. In this notation, P=LCM(λ₁, λ₂, . . . λ_(N)), where LCM is the least common multiple function. In addition, β is a normalized distance, where 0≤β≤1. A latent variable v_(n) may be further defined as follows:

v _(n) =P/λ _(n)∈

.

With the notation introduced above, the least-squares estimator may be expressed as

{circumflex over (r)} ₀ =P{circumflex over (β)}

where

$\overset{\hat{}}{\beta} = {{\arg{\min\limits_{\beta}{F(\beta)}}} = {\arg\;{\min\limits_{\beta}{\sum\limits_{n = 1}^{N}\left\langle {{\overset{˜}{Y}}_{n} - {\beta v_{n}}} \right\rangle^{2}}}}}$

The

x

operator may then be eliminated by introducing the latent variables z_(n)∈

to express the function F as follows:

${F(\beta)} = {\arg\mspace{14mu}{\min\limits_{z_{1},\ldots,{z_{N} \in {\mathbb{Z}}}}{\sum\limits_{n = 1}^{N}\;\left( {{\overset{\sim}{Y}}_{n} - {\beta\; v_{n}} - z_{n}} \right)^{2}}}}$

Thus, recovery of the target distance r₀ may be expressed as an Integer Least Squares (ILS) problem.

The ILS problem discussed above may be solved by solving the Closed Vector Point (CVP) problem for a lattice. When solving the CVP problem, the following vectors may be defined:

{tilde over (y)}=[{tilde over (Y)} ₁ , . . . ,{tilde over (Y)} _(N)]∈

^(N)

z=[z ₁ , . . . ,z _(N)]∈

^(N)

and

$v = {\left\lbrack {v_{1},\ldots\;,v_{N}} \right\rbrack = {\left\lbrack {\frac{P}{\lambda_{1}},\ldots\;,\frac{P}{\lambda_{N}}} \right\rbrack \in {\mathbb{Z}}^{N}}}$

The problem of estimating β may then be decoupled from the problem of estimating z by first solving the following optimization problem:

$\hat{z} = {\arg\mspace{14mu}{\min\limits_{z \in {\mathbb{Z}}^{N}}{{{Q\overset{\sim}{y}} - {Qz}}}^{2}}}$

where Q is an orthogonal projection matrix onto the (N−1)-dimensional subspace orthogonal to v, given by:

$Q = {I - \frac{v\mspace{14mu} v^{T}}{{v}^{2}}}$

In which I is an N×N identity matrix. The normalized distance {circumflex over (β)} may then be estimated via linear regression as follows:

${\hat{\beta}\left( \hat{z} \right)} = \frac{\left( {\overset{\sim}{y} - \hat{z}} \right)^{T}v}{v^{T}v}$

Solving for {circumflex over (z)} is equivalent to solving for the Closest Vector Point (CVP) of the lattice Λ={Qz; z∈

^(N)} to Qŷ. This CVP problem may be solved using a sphere decoding algorithm. Since the matrix Q has a rank N−1, the lattice Λ is not full-dimensional in

^(N). Thus, a new basis may be computed for the lattice Λ. The range may then be estimated as the following:

{circumflex over (r)} ₀ =P({circumflex over (β)}({circumflex over (z)})−└{circumflex over (β)}({circumflex over (z)})┘)

Thus, the radial distance estimation may include a first phase in which the wrapping variables z_(n) are estimated and a second phase in which the linear regression is performed.

FIG. 2 shows a plot of an example lattice 100, according to the example of FIG. 1. In the example lattice 100 of FIG. 2, the first component 26A of the reflected electromagnetic signal 26 has a wavelength λ₁=18.73 m, the second component 26B has a wavelength λ₂=⅕λ₁, and the third component 26C has a wavelength λ₃= 2/15λ₁. The least common multiple P of these wavelengths is 37.46 m. The lattice 100 is centered at the origin, and the plane on which the lattice 100 is depicted is orthogonal to v. The axes are the components of the 2×1 vector w given by the equation

w=Q _(b) Q{tilde over (y)}

where Q_(b) is a 2×3 matrix obtained by performing QR decomposition on v.

In the example lattice 100 of FIG. 2, the large convex polygon is the projection, onto the plane orthogonal to v, of a cube centered at the origin within which the elements of ŷ are located. The cells located within the large convex polygon in FIG. 2 are Voronoi cells, each of which corresponds to a different value of the 3×1 vector of integer values z. When the processor 16 solves the closest vector point problem, the processor 16 may determine the value of z corresponding to the Voronoi cell in which Q{tilde over (y)} is located.

A first source of error in the estimation of {circumflex over (r)}₀ may be error in the estimation of the wrapping variables z_(n). These errors in the estimation of z_(n) are referred to as phase unwrapping errors. The phase unwrapping errors may be responsible for the onset of a threshold effect observed in the Mean Square Error (MSE) vs. signal-to-noise ratio (SNR) curve for the range estimation.

When estimating the remaining sources of error, the measurements of {tilde over (Y)}_(n) may be assumed to be independent and normally distributed with variance σ². In addition, the wrapping variables z_(n) may be assumed to have been estimated accurately. The remaining error in {circumflex over (r)}₀ is linear regression error given by the following equation:

${{var}\left\{ {\hat{r}}_{0} \right\}} = \frac{\sigma^{2}}{\sum\limits_{n = 1}^{N}\;\lambda_{n}^{- 2}}$

The wavelengths of the components of the electromagnetic signal 20 may be selected as follows. The following parameterization in terms of a base wavelength λ_(B) and parameterization variables p_(n), q_(n)∈

may be used for the wavelengths:

$\lambda = \left\lbrack {\lambda_{B},{\lambda_{B}\frac{p_{2}}{q_{2}}},\ldots\;,{\lambda_{B}\frac{p_{N}}{q_{N}}}} \right\rbrack$

With this parameterization, v may be rewritten as:

$v = {{{LCM}\left( {p_{2},\ldots\;,p_{N}} \right)}\left\lbrack {1,\frac{q_{2}}{p_{2}},\ldots\;,\frac{q_{N}}{p_{N}}} \right\rbrack}$

In addition,

${v}^{2} = {{{LCM}\left( {p_{2},\ldots\;,p_{N}} \right)}^{2}\left( {1 + {\sum\limits_{n = 2}^{N}\;\frac{q_{n}^{2}}{p_{n}^{2}}}} \right)}$

An upper bound on the probability of an unwrapping error may be given by:

${p({correctunwrapping})} \leq {F_{N - 1}\left( \frac{{\Gamma\left( {\frac{N}{2} + \frac{1}{2}} \right)}^{\frac{2}{N - 1}}}{{v}^{\frac{2}{N - 1}}\sigma^{2}\pi} \right)}$

where Γ(·) is the Gamma function and F_(N)(·) the χ² cumulative distribution function with N degrees of freedom.

The probability of an unwrapping error may be minimized by selecting wavelengths with q_(n)=1 and p_(n), n=2, . . . , N that have the lowest LCM. The following table shows such values of p for N=3, . . . , 9:

N p LCM 3 1, 2, 4 4 4 1, 2, 3, 6 6 5 1, 3, 4, 6, 12 12 6 1, 2, 3, 4, 6, 12 12 7 1, 3, 4, 6, 8, 12, 24 24 8 1, 2, 3, 4, 6, 8, 12, 24 24 9 1, 2, 3, 4, 5, 15, 20, 30, 60 60 Thus, when the signal source 12 emits the electromagnetic signal 20, the plurality of N wavelengths of the emitted components may be selected such that a ratio of the least common multiple P to a lowest wavelength λ_(min) of the plurality of N wavelengths is minimized. By using one of the above values of p, a user may avoid having to compute the emitted wavelengths as the solution to a cost function.

In some examples, the processor 16 may be configured to execute a sphere decoding algorithm to solve for {circumflex over (z)}. An example of an IP1 sphere decoding algorithm 200 is shown in FIGS. 3A-3B. The IP1 sphere decoding algorithm 200 may be used when the matrix Q is a rank deficient symmetric positive semidefinite (PSD) matrix. With the IP1 sphere decoding algorithm 200, {circumflex over (z)} may be computed with a lower computational complexity than that of existing sphere decoding algorithms. The IP1 sphere decoding algorithm 200 shown in FIGS. 3A-3B has polynomial complexity. As shown in FIGS. 3A-3B, the IP1 sphere decoding algorithm 200 may receive v∈

^(N) and y=[y₁, y₂, . . . , y_(N)]=Q[{tilde over (Y)}₁, {tilde over (Y)}₂, . . . , {tilde over (Y)}_(N)]∈

^(N) as inputs and may output the solution {circumflex over (z)} to the CVP problem for y and Q.

During the Initialization phase of the IP1 sphere decoding algorithm 200, as shown in FIG. 3A, the matrix Q may be defined. In addition, the processor 16 may be configured to set an initial value of a cost function ƒ_(min) to infinity (or other suitably high value) and to define a scalar value α based on y and v. During Phase 1 of the IP1 sphere decoding algorithm 200, as shown in FIG. 3A, the processor 16 may be further configured to set the elements of a matrix Φ, which are sorted at the beginning of Phase 2.

During Phase 2 of the IP1 sphere decoding algorithm 200, as shown in FIG. 3B, the processor 16 is configured to compute a plurality of estimated elements z_(j) of the closest vector point {circumflex over (z)} over a plurality of iterations. In addition, the processor 16 may be configured to compute a value of the cost function ƒ_(min) during each of the plurality of iterations. The processor 16 may be further configured to estimate a minimum value of the cost function ƒ_(min) as a function of the values of the estimated elements estimated elements z_(j) of the closest vector point {circumflex over (z)}.

Subsequently to computing the solution to the CVP, the processor 16 may be further configured to compute the normalized distance {circumflex over (β)}({circumflex over (z)}) based on the plurality of phase values {tilde over (y)}, the closest vector point {circumflex over (z)}, and the vector v by computing a linear regression of {tilde over (y)}−{circumflex over (z)} onto v, as discussed above. The processor 16 may be further configured to compute the estimated distance {circumflex over (r)}₀ based on the normalized distance {circumflex over (β)}({circumflex over (z)}) and the least common multiple P as shown above using the equation {circumflex over (r)}₀=P({circumflex over (β)}({circumflex over (z)})−└{circumflex over (β)}({circumflex over (z)})┘).

The computations that may be performed at the processor 16 when executing the torus decoder 30 are now discussed. Solving for {circumflex over (β)} using the torus decoder 30 may provide for a lower signal-to-noise ratio than using the IP1 algorithm above, but also may be less computationally efficient.

Noisy phase data measured for waveforms with multiple respective wavelengths may be unwrapped using methods for decoding an analog signal on a flat torus. Let a curve be defined by the following equation:

${s_{T}(r)} = \left\lbrack {{\cos\left( {2\pi\frac{r}{\lambda_{1}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{1}}} \right)},\ldots\;,{\cos\left( {2\pi\frac{r}{\lambda_{N}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{N}}} \right)}} \right\rbrack$

for r∈[0, P]. This curve lies on an N-dimensional surface in

^(2N) known as the flat torus. In addition, a 2N-dimensional vector u=[u₁, u₂, . . . , u_(2N)] may be defined to have the following properties:

u _(2i−1)=cos(2π{tilde over (Y)} _(i))

u _(2i)=sin(2π{tilde over (Y)} _(i))

i=1, . . . ,N

FIG. 4 shows an example projection of a six-dimensional flat torus 40 onto a three-dimensional torus. Three-dimensional representations of the curve s_(T)(r) and the 2N-dimensional vector u are also shown in FIG. 4, although the curve s_(T)(r) and the 2N-dimensional vector u are six-dimensional objects.

With the flat torus and the vector u defined as shown above, the maximum-likelihood estimator {circumflex over (r)} may be given by the estimator:

$\hat{r} = {\arg\mspace{14mu}{\min\limits_{r}{{u - {s_{T}(r)}}}^{2}}}$

The solution to the above equation is the orthogonal projection of u onto s_(T):

(u−s _(T)(r))·{dot over (s)} _(T)(r)|_(r={circumflex over (r)})=0

where {dot over (s)}_(T)(r) is the derivative of s_(T)(r) with respect to r. FIG. 4 further shows a three-dimensional representation of the orthogonal projection u−s_(T)(r) of the 2N-dimensional vector u onto the curve s_(T)(r).

The orthogonal projection may be determined by solving for the zeroes of the following trigonometric polynomial in {circumflex over (β)}:

${T_{N}\left( \hat{\beta} \right)} = {{\sum\limits_{i = 1}^{N}\;{v_{i}\mspace{14mu}{\sin\left( {2\left( {{v_{i}\hat{\beta}} - {\overset{\sim}{Y}}_{i}} \right)} \right)}}} = 0}$

Solving for the zeroes of the trigonometric polynomial T_(N)({circumflex over (β)}) may include forming the following 2M×2M complex companion matrix (CCM):

$B_{jk} = \left\{ \begin{matrix} {\mspace{50mu}{\delta_{j,{k - 1}},}} & {{j = 1},\ldots\;,{{2M} - 1}} \\ {\frac{- h_{k - 1}}{a_{M} - {ib}_{M}},} & {{j = {2M}}\mspace{115mu}} \end{matrix} \right.$

where

$h_{j} = \left\{ \begin{matrix} {{a_{M - j} + {ib}_{M - j}},} & {{{j = 0},\ldots\;,{M - 1}}\mspace{25mu}} \\ {\mspace{104mu}{{2a_{0}},}} & {{j = M}\mspace{140mu}} \\ {{a_{j - M} - {ib}_{j - M}},} & {{j = {M + 1}},\ldots\;,{2M}} \end{matrix} \right.$

and a, b, and M are defined as follows:

v₀^(′) = 0 v_(j)^(′) = j 1_(v)(j) $a_{j} = {{- v_{j}^{\prime}}{\sin\left( {2\pi{\overset{\sim}{Y}}_{j}} \right)}}$ $b_{j} = {v_{j}^{\prime}{\cos\left( {2\pi\;{\overset{\sim}{Y}}_{j}} \right)}}$ $M = {\max\limits_{1 \leq n \leq N}v_{n}}$

In the above definitions, 1_(v)(j) denotes the indicator function of v. With these definitions, h₀=0. In addition, M is a ratio of the least common multiple P to a lowest wavelength λ_(min) of the plurality of N wavelengths.

Complex eigenvalues z_(j) of B may then be computed. The zeroes of the trigonometric polynomial T_(N)({circumflex over (β)}) are then given by:

{circumflex over (β)}_(j) =∠z _(j)

for j=0, . . . , 2M, where ∠ denotes the argument function.

Instead of using a generic eigensolver to compute the eigenvalues of B, Durand-Kerner iterations may be used. Each of the eigenvalues z_(j) has a magnitude ∥z_(j)∥=1. Thus, the eigenvalues may be iteratively computed as follows:

$z_{j}^{({r + 1})} = {z_{j}^{(r)} - \frac{h\left( z_{j}^{(r)} \right)}{\Pi_{{k = 1}{k \neq j}}^{2M}\left( {z_{j}^{(r)} - z_{k}^{(r)}} \right)}}$

for j=0, . . . , 2M. As starting values, the following 2M+1 equally spaced points on the unit circle may be used:

$z_{j}^{(0)} = e^{i{({{\frac{2\pi}{{2M} + 1}j} + \alpha})}}$

where

$\alpha = \frac{\pi}{2\left( {{2M} + 1} \right)}$

This technique may allow the eigenvalues of B to be computed more quickly compared to conventional eigenvalue computing methods.

In the above solution to the trigonometric polynomial T_(N)({circumflex over (β)}), the different zeroes of T_(N)({circumflex over (β)}) correspond to different folds of s_(T)(r) as it unwinds on the flat torus. To choose the correct zero, the geodesic distance may be computed between u and s_(T)(P{circumflex over (β)}_(j)) for j=0, . . . , 2M using the following flat torus isometric embedding:

$\hat{\beta} = {\arg\mspace{14mu}{\min\limits_{0 \leq j \leq {2M}}{\sum\limits_{n = 1}^{N}\;{\sin^{2}\left( {\pi\left( {{v_{n}{\hat{\beta}}_{j}} - {\overset{\sim}{Y}}_{n}} \right)} \right)}}}}$

The final range estimate {circumflex over (r)}₀=P{circumflex over (β)} may then be computed. This final range estimate {circumflex over (r)}₀ may be considered the result of geodesic regression on a Riemannian manifold.

Using the above method of computing the range estimate, the mean squared error (MSE) of the range estimate may be reduced. When the torus decoder is used, the critical signal-to-noise ratio (SNR) at which a rapid increase in the MSE occurs may be higher than the critical SNR for a conventional decoder. FIG. 5 shows a plot 110 of MSE as a function of SNR for both an IP1 decoder 32 and the torus decoder 30. The IP1 decoder 32 has a sharp increase in the MSE of the estimated range at an SNR of approximately 15 dB. In contrast, the range estimate made using the torus decoder 30 does not undergo a sharp increase until an SNR of approximately 13 dB. Thus, range estimates made using the torus decoder 30 may remain accurate at higher levels of noise compared to range estimates made using conventional unwrapping techniques. As a result of this increase in robustness to noise, distance measurements may be made using lower-powered electromagnetic signals 20 compared to the electromagnetic signals that would be used with the IP1 decoder 32.

FIG. 6A shows a flowchart of an example method 500 that may be performed at an imaging system. The method 500 may be performed at the imaging system 10 shown in FIG. 1, or alternatively at some other imaging system. At step 502, the method 500 may include, at a signal source, emitting an electromagnetic signal. The electromagnetic signal may include a plurality of emitted components having a plurality of N different wavelengths. In some examples, the plurality of N wavelengths of the emitted components may be selected such that a ratio of the least common multiple of the plurality of N wavelengths to a lowest wavelength of the plurality of N wavelengths is minimized. At step 504, the method 500 may further include, at a signal receiver, receiving a reflected electromagnetic signal from an imaged object in a physical environment. The reflected electromagnetic signal may include a plurality of reflected components having substantially equal wavelengths to the wavelengths of the plurality of emitted components.

The following steps of the method 500 may be performed at a processor of the imaging system. At step 506, the method 500 may further include, for each of the plurality of N wavelengths, determining a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. From the plurality of phase values, the method 500 may further include, at step 508, computing an estimated distance between the imaged object and the signal receiver. In examples in which the signal receiver includes a plurality of pixels, the estimated distance may be computed for each pixel of the plurality of pixels included in the signal receiver. Step 508 may be performed at a torus decoder executed by the processor included in the imaging system.

At step 510, step 508 may include computing a least common multiple of the wavelengths. At step 512, step 508 may further include mapping the plurality of phase values to a 2N-dimensional vector. The 2N-dimensional vector may be the 2N-dimensional vector u discussed above, which includes, for each phase value {tilde over (Y)}_(i) of the plurality of phase values, a first element equal to cos(2π{tilde over (Y)}_(i)) and a second element equal to sin(2π{tilde over (Y)}_(i)). At step 514, step 508 may further include computing a plurality of zeroes of a trigonometric polynomial. The trigonometric polynomial may be the trigonometric polynomial T_(N)({circumflex over (β)}) discussed above and may be an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus. The curve along the flat torus may be the curve s_(T)(r) discussed above.

In some examples, step 514 may include the steps shown in FIG. 6B. At step 522, step 514 may include generating a complex companion matrix for the trigonometric polynomial. The complex companion matrix may be the complex companion matrix B_(jk) discussed above. In such examples, step 514 may further include, at step 524, determining eigenvalues of the complex companion matrix. The complex companion matrix may have dimensions 2M×2M, wherein M is a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths. Determining the eigenvalues of the complex companion matrix may include, at step 526, computing a plurality of Durand-Kerner iterations. The zeroes of the trigonometric polynomial may be equal to the arguments of the eigenvalues computed at step 518.

Step 508 may further include, at step 516, for each of the plurality of zeroes, computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at the product of that zero and the least common multiple. These geodesic distances may be distances between the 2N-dimensional vector u and s_(T)(P{circumflex over (β)}_(j)), where P is the least common multiple and {circumflex over (β)}_(j) is the j-th zero of the trigonometric polynomial. Step 508 may further include, at step 518, selecting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by the least common multiple. Thus, the imaging system may generate an estimate of the distance between the imaged object and the signal receiver. At step 520, the method 500 may further include outputting the estimated distance.

In some examples, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.

FIG. 7 schematically shows a non-limiting example of a computing system 300 that can enact one or more of the methods and processes described above. Computing system 300 is shown in simplified form. Computing system 300 may embody the imaging system 10 described above and illustrated in FIG. 1. Computing system 300 may take the form of one or more personal computers, server computers, tablet computers, home-entertainment computers, network computing devices, gaming devices, mobile computing devices, mobile communication devices (e.g., smart phone), and/or other computing devices, and wearable computing devices such as smart wristwatches and head mounted augmented reality devices.

Computing system 300 includes a logic processor 302 volatile memory 304, and a non-volatile storage device 306. Computing system 300 may optionally include a display subsystem 308, input subsystem 310, communication subsystem 312, and/or other components not shown in FIG. 7.

Logic processor 302 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.

The logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the logic processor 302 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic processor optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood.

Non-volatile storage device 306 includes one or more physical devices configured to hold instructions executable by the logic processors to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 306 may be transformed—e.g., to hold different data.

Non-volatile storage device 306 may include physical devices that are removable and/or built-in. Non-volatile storage device 306 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), or other mass storage device technology. Non-volatile storage device 306 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated that non-volatile storage device 306 is configured to hold instructions even when power is cut to the non-volatile storage device 306.

Volatile memory 304 may include physical devices that include random access memory. Volatile memory 304 is typically utilized by logic processor 302 to temporarily store information during processing of software instructions. It will be appreciated that volatile memory 304 typically does not continue to store instructions when power is cut to the volatile memory 304.

Aspects of logic processor 302, volatile memory 304, and non-volatile storage device 306 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 300 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function. Thus, a module, program, or engine may be instantiated via logic processor 302 executing instructions held by non-volatile storage device 306, using portions of volatile memory 304. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

When included, display subsystem 308 may be used to present a visual representation of data held by non-volatile storage device 306. The visual representation may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state of display subsystem 308 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 308 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic processor 302, volatile memory 304, and/or non-volatile storage device 306 in a shared enclosure, or such display devices may be peripheral display devices.

When included, input subsystem 310 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some examples, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity; and/or any other suitable sensor.

When included, communication subsystem 312 may be configured to communicatively couple various computing devices described herein with each other, and with other devices. Communication subsystem 312 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network. In some examples, the communication subsystem may allow computing system 300 to send and/or receive messages to and/or from other devices via a network such as the Internet.

Another example provides an imaging system, including a signal source configured to emit an electromagnetic signal. The imaging system may further include a signal receiver configured to receive a reflected electromagnetic signal from an imaged object in a physical environment. The imaging system may further include a processor configured to, for each of a plurality of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. The processor may be further configured to, from the plurality of phase values, compute an estimated distance between the imaged object and the signal receiver at least in part by mapping the plurality of phase values to a 2N-dimensional vector. Computing the estimated distance may further include computing a plurality of zeroes of a trigonometric polynomial. The trigonometric polynomial may be an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus. Computing the estimated distance may further include, for each of the plurality of zeroes, computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at the product of that zero and a least common multiple of the wavelengths. Computing the estimated distance may further include selecting and outputting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by the least common multiple.

In such an example, computing the plurality of zeroes of the trigonometric polynomial may include generating a complex companion matrix for the trigonometric polynomial and determining eigenvalues of the complex companion matrix.

In such an example, computing the eigenvalues of the complex companion matrix may include computing a plurality of Durand-Kerner iterations.

In such an example, the processor may be configured to compute the estimated distance for each pixel of a plurality of pixels of the signal receiver.

In such an example, the 2N-dimensional vector may include, for each phase value {tilde over (Y)}_(i) of the plurality of phase values, a first element equal to cos(2π{tilde over (Y)}_(i)) and a second element equal to sin(2π{tilde over (Y)}_(i)).

In such an example, the curve along the flat torus may be given by an equation

${s_{T}(r)} = \left\lbrack {{\cos\left( {2\pi\frac{r}{\lambda_{1}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{1}}} \right)},\ldots\;,{\cos\left( {2\pi\frac{r}{\lambda_{N}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{N}}} \right)}} \right\rbrack$

where λ₁ . . . λ_(N) are the wavelengths and r is a real number between zero and the least common multiple of the wavelengths.

In such an example, the trigonometric polynomial may be given by an equation

${T_{N}\left( \hat{\beta} \right)} = {{\sum\limits_{i = 1}^{N}\;{v_{i}\mspace{14mu}{\sin\left( {2{\pi\left( {{v_{i}\hat{\beta}} - {\overset{\sim}{Y}}_{i}} \right)}} \right)}}} = 0}$

where {tilde over (Y)}_(i) are the phase values and v_(i) are ratios of the least common multiple to the wavelengths.

In such an example, the electromagnetic signal may include a plurality of N emitted components that respectively have the N wavelengths. The plurality of N wavelengths may be selected such that a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths is minimized.

In such an example, N may be between three and nine.

In such an example, the complex companion matrix may have dimensions 2M×2M, wherein M is a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths.

Another example provides a method including, at a signal source, emitting an electromagnetic signal. The method may further include, at a signal receiver, receiving a reflected electromagnetic signal from an imaged object in a physical environment. The method may further include, for each of a plurality of N wavelengths, determining a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. The method may further include, from the plurality of phase values, computing an estimated distance between the imaged object and the signal receiver at least in part by mapping the plurality of phase values to a 2N-dimensional vector. Computing the estimated distance may further include computing a plurality of zeroes of a trigonometric polynomial. The trigonometric polynomial may be an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus. Computing the estimated distance may further include, for each of the plurality of zeroes, computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at the product of that zero and a least common multiple of the wavelengths. Computing the estimated distance may further include selecting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by the least common multiple. The method may further include outputting the estimated distance.

In such an example, computing the plurality of zeroes of the trigonometric polynomial may include generating a complex companion matrix for the trigonometric polynomial and determining eigenvalues of the complex companion matrix.

In such an example, the 2N-dimensional vector may include, for each phase value {tilde over (Y)}_(i) of the plurality of phase values, a first element equal to cos(2π{tilde over (Y)}_(i)) and a second element equal to sin(2π{tilde over (Y)}_(i)).

In such an example, the curve along the flat torus may be given by

${s_{T}(r)} = \left\lbrack {{\cos\left( {2\pi\frac{r}{\lambda_{1}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{1}}} \right)},\ldots\;,{\cos\left( {2\pi\frac{r}{\lambda_{N}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{N}}} \right)}} \right\rbrack$

where λ₁ . . . λ_(N) are the wavelengths and r is a real number between zero and the least common multiple of the wavelengths.

Another example provides an imaging system, including a signal source configured to emit an electromagnetic signal. The electromagnetic signal may include a plurality of N emitted components that respectively have N wavelengths. The imaging system may further include a signal receiver configured to receive a reflected electromagnetic signal from an imaged object in a physical environment. The imaging system may further include a processor configured to, for each of the plurality of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength. From the plurality of phase values, the processor may be further configured to compute an estimated distance between the imaged object and the signal receiver at least in part by computing a closest vector point between a vector of the plurality of phase values and an orthogonal projection matrix. The orthogonal projection matrix may encode an orthogonal projection onto a subspace orthogonal to a vector of a least common multiple of the N wavelengths divided by each of the N wavelengths. Computing the closest vector point may include, over a plurality of iterations in which a plurality of estimated elements of the closest vector point are updated, estimating a minimum value of a cost function of the plurality of estimated elements. Computing the estimated distance may further include computing a normalized distance based on the plurality of phase values, the closest vector point, and the vector of the least common multiple divided by each of the N wavelengths. Computing the estimated distance may further include computing the estimated distance based on the normalized distance and the least common multiple. The processor may be further configured to output the estimated distance.

In such an example, the orthogonal projection matrix may be a rank deficient positive semidefinite matrix.

In such an example, the orthogonal projection matrix may be computed with the equation

$Q = {I - \frac{v\mspace{14mu} v^{T}}{{v}^{2}}}$

wherein I is an N×N identity matrix and v is the vector of the least common multiple divided by each of the N wavelengths.

In such an example, the normalized distance is computed with the equation

${\hat{\beta}\left( \hat{z} \right)} = \frac{\left( {\overset{\sim}{y} - \hat{z}} \right)^{T}v}{v^{T}v}$

wherein {circumflex over (β)}({circumflex over (z)}) is the normalized distance, {circumflex over (z)} is the closest vector point, {tilde over (y)} is the vector of the plurality of phase values, and v is the vector of the least common multiple divided by each of the N wavelengths.

In such an example, the estimated distance may be computed with the equation

{circumflex over (r)} ₀ =P({circumflex over (β)}({circumflex over (z)})−└{circumflex over (β)}({circumflex over (z)})┘)

wherein {circumflex over (r)}₀ is the estimated distance, P is the least common multiple, and {circumflex over (β)}({circumflex over (z)}) is the normalized distance.

In such an example, the plurality of N wavelengths may be selected such that a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths is minimized.

It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific examples or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.

The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof. 

1. An imaging system comprising: a signal source configured to emit an electromagnetic signal; a signal receiver configured to receive a reflected electromagnetic signal from an imaged object in a physical environment; and a processor configured to: for each of a plurality of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength; from the plurality of phase values, compute an estimated distance between the imaged object and the signal receiver at least in part by: mapping the plurality of phase values to a 2N-dimensional vector; computing a plurality of zeroes of a trigonometric polynomial, wherein the trigonometric polynomial is an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus; for each of the plurality of zeroes, computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at the product of that zero and a least common multiple of the wavelengths; and selecting and outputting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by the least common multiple.
 2. The imaging system of claim 1, wherein computing the plurality of zeroes of the trigonometric polynomial includes: generating a complex companion matrix for the trigonometric polynomial; and determining eigenvalues of the complex companion matrix.
 3. The imaging system of claim 2, wherein computing the eigenvalues of the complex companion matrix includes computing a plurality of Durand-Kerner iterations.
 4. The imaging system of claim 1, wherein the processor is configured to compute the estimated distance for each pixel of a plurality of pixels of the signal receiver.
 5. The imaging system of claim 1, wherein the 2N-dimensional vector includes, for each phase value {tilde over (Y)}_(i) of the plurality of phase values, a first element equal to cos(2π{tilde over (Y)}_(i)) and a second element equal to sin(2π{tilde over (Y)}_(i)).
 6. The imaging system of claim 1, wherein the curve along the flat torus is given by an equation ${s_{T}(r)} = \left\lbrack {{\cos\left( {2\pi\frac{r}{\lambda_{1}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{1}}} \right)},\ldots\;,{\cos\left( {2\pi\frac{r}{\lambda_{N}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{N}}} \right)}} \right\rbrack$ where λ₁ . . . λ_(N) are the wavelengths and r is a real number between zero and the least common multiple of the wavelengths.
 7. The imaging system of claim 6, wherein the trigonometric polynomial is given by an equation ${T_{N}\left( \hat{\beta} \right)} = {{\sum\limits_{i = 1}^{N}\;{v_{i}\mspace{14mu}{\sin\left( {2{\pi\left( {{v_{i}\hat{\beta}} - {\overset{\sim}{Y}}_{i}} \right)}} \right)}}} = 0}$ where {tilde over (Y)}_(i) are the phase values and v_(i) are ratios of the least common multiple to the wavelengths.
 8. The imaging system of claim 1, wherein: the electromagnetic signal includes a plurality of N emitted components that respectively have the N wavelengths; and the plurality of N wavelengths are selected such that a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths is minimized.
 9. The imaging system of claim 8, wherein N is between three and nine.
 10. The imaging system of claim 1, wherein the complex companion matrix has dimensions 2M×2M, wherein M is a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths.
 11. A method comprising: at a signal source, emitting an electromagnetic signal; at a signal receiver, receiving a reflected electromagnetic signal from an imaged object in a physical environment; for each of a plurality of N wavelengths, determining a phase value of a reflected component of the reflected electromagnetic signal having that wavelength; from the plurality of phase values, computing an estimated distance between the imaged object and the signal receiver at least in part by: mapping the plurality of phase values to a 2N-dimensional vector; computing a plurality of zeroes of a trigonometric polynomial, wherein the trigonometric polynomial is an orthogonal projection of the 2N-dimensional vector onto a curve along a flat torus; for each of the plurality of zeroes, computing a respective geodesic distance between the 2N-dimensional vector and a point along the curve evaluated at the product of that zero and a least common multiple of the wavelengths; and selecting, as the estimated distance, a shortest geodesic distance of the plurality of geodesic distances multiplied by the least common multiple; and outputting the estimated distance.
 12. The method of claim 11, wherein computing the plurality of zeroes of the trigonometric polynomial includes: generating a complex companion matrix for the trigonometric polynomial; and determining eigenvalues of the complex companion matrix.
 13. The method of claim 11, wherein the 2N-dimensional vector includes, for each phase value {tilde over (Y)}_(i) of the plurality of phase values, a first element equal to cos(2π{tilde over (Y)}_(i)) and a second element equal to sin(2π{tilde over (Y)}_(i)).
 14. The method of claim 11, wherein the curve along the flat torus is given by ${s_{T}(r)} = \left\lbrack {{\cos\left( {2\pi\frac{r}{\lambda_{1}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{1}}} \right)},\ldots\;,{\cos\left( {2\pi\frac{r}{\lambda_{N}}} \right)},{\sin\left( {2\pi\frac{r}{\lambda_{N}}} \right)}} \right\rbrack$ where λ₁ . . . λ_(N) are the wavelengths and r is a real number between zero and the least common multiple of the wavelengths.
 15. An imaging system comprising: a signal source configured to emit an electromagnetic signal, wherein the electromagnetic signal includes a plurality of N emitted components that respectively have N wavelengths; a signal receiver configured to receive a reflected electromagnetic signal from an imaged object in a physical environment; and a processor configured to: for each of the plurality of N wavelengths, determine a phase value of a reflected component of the reflected electromagnetic signal having that wavelength; from the plurality of phase values, compute an estimated distance between the imaged object and the signal receiver at least in part by: computing a closest vector point between a vector of the plurality of phase values and an orthogonal projection matrix, wherein: the orthogonal projection matrix encodes an orthogonal projection onto a subspace orthogonal to a vector of a least common multiple of the N wavelengths divided by each of the N wavelengths, and computing the closest vector point includes, over a plurality of iterations in which a plurality of estimated elements of the closest vector point are updated, estimating a minimum value of a cost function of the plurality of estimated elements; computing a normalized distance based on the plurality of phase values, the closest vector point, and the vector of the least common multiple divided by each of the N wavelengths; computing the estimated distance based on the normalized distance and the least common multiple; and output the estimated distance.
 16. The imaging system of claim 15, wherein the orthogonal projection matrix is a rank deficient positive semidefinite matrix.
 17. The imaging system of claim 15, wherein the orthogonal projection matrix is computed with the equation $Q = {I - \frac{v\mspace{14mu} v^{T}}{{v}^{2}}}$ wherein I is an N×N identity matrix and v is the vector of the least common multiple divided by each of the N wavelengths.
 18. The imaging system of claim 15, wherein the normalized distance is computed with the equation ${\hat{\beta}\left( \hat{z} \right)} = \frac{\left( {\overset{\sim}{y} - \hat{z}} \right)^{T}v}{v^{T}v}$ wherein {circumflex over (β)}({circumflex over (z)}) is the normalized distance, {circumflex over (z)} is the closest vector point, {tilde over (y)} is the vector of the plurality of phase values, and v is the vector of the least common multiple divided by each of the N wavelengths.
 19. The imaging system of claim 15, wherein the estimated distance is computed with the equation r ₀ =P({circumflex over (β)}({circumflex over (z)})−└{circumflex over (β)}({circumflex over (z)})┘) wherein {circumflex over (r)}₀ is the estimated distance, P is the least common multiple, and {circumflex over (β)}({circumflex over (z)}) is the normalized distance.
 20. The imaging system of claim 15, wherein the plurality of N wavelengths are selected such that a ratio of the least common multiple to a lowest wavelength of the plurality of N wavelengths is minimized. 